package com.ruoyi.classai.service;

import com.github.yulichang.base.MPJBaseService;
import com.ruoyi.classai.domain.EwcCourse;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.classai.domain.dto.ClassCourseDto;
import com.ruoyi.classai.domain.dto.EwcCourseDto;
import com.ruoyi.classai.domain.vo.EwcCourseVo;

import javax.validation.constraints.NotBlank;
import java.util.List;

/**
 * 课程信息Service接口
 * 
 * @author lcj
 * @date 2025-02-27
 */
public interface IEwcCourseService extends MPJBaseService<EwcCourse> {

    /**
     * 查询课程列表
     * @param courseName 课程名称
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param classId 班级id
     * @return  课程列表
     */
    List<EwcCourseVo> getList(String teacherId,String courseName, String startTime, String endTime, String classId);

    /**
     * 查询关联班级课程列表
     * @param classId 班级id
     */
    List<EwcCourseVo> getCourseAssociation(String classId);

    /**
     * 添加课程
     * @param courseDto 课程信息
     */
    void addCourse( EwcCourseDto courseDto);

    /**
     * 编辑课程
     * @param courseDto 课程信息
     */
    void updateCourse( EwcCourseDto courseDto);

    /**
     * 删除课程
     * @param id 课程ID
     */
    void deleteCourse(String id);

    /**
     * 添加关联课程
     * @param classCourseDto 关联信息
     */
    void addRelatedCourses(ClassCourseDto classCourseDto);

    /**
     * 删除关联课程
     * @param courseId 课程ID
     * @param classId 班级ID
     */
    void deleteRelatedCourses(String courseId, String classId);
}
